1. Field of the Invention
The present invention relates to a technology for initializing contents stored in a memory.
2. Description of the Related Art
For a system employing a microprocessor as a central processing unit (CPU), peripheral circuits such as a program ROM, a RAM, input/output control devices (I/O), etc. are connected to the CPU via various buses such as an address bus, a data bus, a control bus, etc. When a system is started up, or each process type is invoked, data remaining in the peripheral circuits are initialized by performing an initialization process. As a result, erroneous information processing is prevented.
In recent years, CPUs have been almost always used to realize various systems. Particularly, the scale of a system has recently increased with the improvement in a throughput of a CPU. Furthermore, a storage capacity of a memory included in a system tends to increase in image/picture processing applications which are handling large amounts of information. A storage capacity of tens of megabytes has become popular. As the storage capacity of a memory to be included in a system increases, the amount of time required to perform the process for initializing the memory at a system start-up, etc. becomes longer. Consequently, a considerable amount of time is required to complete the system start-up.
Assume that one clock cycle is 250 nanoseconds and the contents of 16 megabytes of memory are to be initialized. In this case, approximately 4.2 seconds are required using a byte access method, while approximately 2.1 seconds are required using a word access method.
Furthermore, if initialization is performed as a software process, the amount of time including the number of steps performed for the initialization is required.
An independently operating system such as a stand-alone machine, etc. has little influence on an ambient system environment even if a considerable amount of time is required to start up the system.
For a system which is connected to a network or to another system and provides various services, however, the provision of the services is delayed if a considerable amount of time is required to start up the system. This may sometimes lead to a system crash of another system connected to the network, or to the system which requested the above described services.
Also to avoid such problems, a system must be quickly started up, and the process for initializing a memory with a large storage capacity must be quickly completed.
For a conventional system using a CPU, the CPU and memories such as a ROM, a RAM, etc. are connected as shown in FIG. 1. Typically, a memory initialization routine stored in the ROM (program ROM) is called, and the CPU directly writes "0" to each storage area in the memory, when the initialization process is performed.
Furthermore, there is also a hardware initialization method with which particular hardware such as an address counter, a write control circuit, etc. are equipped separately from the function operating based on an address accessed by the CPU, and "0" is written to each storage area in the memory by starting up the address counter and the write control circuit when the initialization process is performed.
The object of the initialization process is to guarantee that the value of memory data is set to a particular value (normally "0") when a CPU or peripheral I/O devices initially read data stored in a memory.
However, the above described conventional method with which a CPU executes the initialization routine stored in a ROM, or the method with which particular hardware executes the initialization process, has the problem that the amount of time required for initializing a memory increases in proportion to the storage capacity of the memory. That is, if the storage capacity of the memory becomes double, also the amount of time required for initializing the memory will become double.
Furthermore, with a conventional data rewrite system for an image memory, etc., which enables data to be rewritten in a RAM after data stored in a ROM is transferred to the RAM, the above described rewrite process is started after the amount of time required for the data transfer elapses. Therefore, this system also has the problem that the amount of time until it becomes possible to perform the process for rewriting the RAM increases in proportion to the storage capacity of the RAM.